%% == format_for_noun_num ==
%% как исключить из множества числительных для этого правила слова из списка num_pr.dat?
[СУЩ_ЧИСЛ1] -> [ОДНОР_ЧИСЛ] | [КОЛИЧ] | [СЛОЖ_ЧИСЛ] | [NUMORD] | [NUMCARD] | [DIG];
[СУЩ_ЧИСЛ] -> [TOKEN root filename="noun_num.dat"] [СУЩ_ЧИСЛ1];

%% == format_for_selective_groups ==

%% аналог CanNumeralBeNoun
[SUBST_NUM] -> 'двое' | 'трое' | 'четверо' | 'пятеро' | 'шестеро' | 
			   'семеро' | 'восьмеро' | 'девятеро' | 'десятеро' | 'оба';
			   
[ELECT_1PART] -> 'какой' | 'один' | 'любой' | [TOKEN form="каждый" grm="ед"] | 
				 [TOKEN form="многий" grm="мн"] | [TOKEN form="некоторый" grm="мн"] | 
				 [ADJ grm="прев"] | ('самый' [ADJ]) | [NUMORD] | [SUBST_NUM];

[ЭЛЕКТ_ИГ1] -> [NOUN] | [PRO] | [PRO-ADJ] | [ПРИЛ_СУЩ];
[ЭЛЕКТ_ИГ] -> [ELECT_1PART root] 'из' [ЭЛЕКТ_ИГ1];

%% == format_for_noun_groups ==
%% ожидающему неприятностей мальчику
[ПРИЛ_СУЩ0] -> [ADJ] | [МОДИФ_ПРИЛ] | [НАР_ПРИЛ] | [PRO-ADJ] | [NUMORD] | [АНАТ_СРАВН];
[ПРИЛ_СУЩ1] -> [ПРИЛ_СУЩ0] | [ОДНОР_ПРИЛ grm="П"]| [РАЗРЫВ_СОЮЗ grm="П"] | [PART grm="дст"] | [ПРЯМ_ДОП grm="ПРИЧАСТИЕ,дст"];
[ПРИЛ_СУЩ2] -> [NOUN] | [ГЕНИТ_ИГ] | [ЧИСЛ_СУЩ];
[ПРИЛ_СУЩ] ->  [ПРИЛ_СУЩ1] [ПРИЛ_СУЩ2 root]
		    : $0.grm := agrcng($1.grm, $2.grm);

[ПРИЛ_СУЩ] -> [ПРИЛ_СУЩ1] [PARTICLE] [ПРИЛ_СУЩ2 root]
		    : $0.grm := agrcng($1.grm, $3.grm);
			
[ПРИЛ_СУЩ] -> [ПРИЛ_СУЩ0] [ПРИЛ_СУЩ root]
            : $0.grm := agrcng($1.grm, $2.grm);
            
[ПРИЛ_СУЩ] -> [ПРИЛ_СУЩ0] [PARTICLE] [ПРИЛ_СУЩ root]
            : $0.grm := agrcng($1.grm, $3.grm);
            
[ПРИЛ_СУЩ] -> [COMMA] ([ADJ] | [МОДИФ_ПРИЛ] | [НАР_ПРИЛ] | [PART] | [ОДНОР_ПРИЛ grm="П"] | [PRO-ADJ]) [COMMA] [PRO root]
            : $0.grm := agrcng($2.grm, $4.grm);

[ПРИЛ_СУЩ] -> [ОДНОР_ПРИЛ grm="П, ед"] [NOUN root grm="мн"]
            : $0.grm := agrc($1.grm, $2.grm);

[ПРИЛ_СУЩ] -> ([ADJ grm="мн"] | [МОДИФ_ПРИЛ grm="мн"] | [НАР_ПРИЛ grm="мн"]) [NOUN-COORD-SPECIAL root]
            : $0.grm := agrc($1.grm, $2.grm);

[NOUN-COORD-SPECIAL] -> [NOUN grm="ед"] 'и' [NOUN root]
            : $0.grm := agrc($1.grm, $3.grm);
[NOUN-COORD-SPECIAL1] -> [NOUN] 'и' [NOUN root]
            : $0.grm := agrc($1.grm, $3.grm);
[NOUN-COORD-SPECIAL1] -> [NOUN] [COMMA] [NOUN-COORD-SPECIAL1 root]
            : $0.grm := agrc($1.grm, $3.grm);
[NOUN-COORD-SPECIAL] -> [NOUN grm="ед"] [COMMA] [NOUN-COORD-SPECIAL1 root]
            : $0.grm := agrc($1.grm, $3.grm);

%% == format_for_gen_chains ==
%%	Никакие вопросы поддержки работы с пользователем , документирования , тиражирования - тезаурус
%% руководителям отдела и всего проекта
[ГЕНИТ_ИГ1] -> [NOUN] | [СУЩ_ЧИСЛ] | [ЧИСЛ_СУЩ] | [ГЕНИТ_ИГ] | [ПРИЛ_СУЩ] | [ФИО root]; 
[ГЕНИТ_ИГ2] -> [NOUN] | [ПРИЛ_СУЩ] | [СУЩ_ЧИСЛ] | [ЧИСЛ_СУЩ] | [ГЕНИТ_ИГ] | [ОДНОР_ИГ] | [ПРИЧ_СУЩ];
[ГЕНИТ_ИГ] -> [ГЕНИТ_ИГ1 root] [ГЕНИТ_ИГ2 grm="рд"];

%% == format_for_number_noun ==
%% == format_for_both
%% == format_standard_param_abbr
%% == format_for_small_number_noun
%% == format_for_odin_group
%% тысячи миль
[ЧИСЛ_СУЩ1] -> [КОЛИЧ] | [DIG] | [СЛОЖ_ЧИСЛ] | [NUMCARD];
[ЧИСЛ_СУЩ2] -> [NOUN] | [ПРИЛ_СУЩ];

[ЧИСЛ_СУЩ] -> [ЧИСЛ_СУЩ1 has_one_grm="им,вн"] [ЧИСЛ_СУЩ2 root grm="рд, мн"];
[ЧИСЛ_СУЩ] -> [ЧИСЛ_СУЩ1] [ЧИСЛ_СУЩ2 root]
		   : $0.grm := agrc($1.grm, $2.grm);

[ЧИСЛ_СУЩ] -> 'ОБА' [PRO root grm="мн"];
[ЧИСЛ_СУЩ] -> [PRO root grm="мн"] 'ОБА';

[MSR] -> 'КГ' | 'КМ' | 'СМ'|'МЛ' | 'МБ'|'КБ' | 'МГЦ' | 'КВ';
[ЧИСЛ_СУЩ] -> ([ЧИСЛ_СУЩ1] |'1'| 'ОДИН') [MSR root] : $0.grm := set_all_cases($2.grm);

[ЧИСЛ_СУЩ] -> ('1'| 'ОДИН') [ЧИСЛ_СУЩ2 root]
		   : $0.grm := agrcng($1.grm, $2.grm);

[ЧИСЛ_СУЩ] -> [SMALL-NUM] ([NOUN root grm="мн"] | [ПРИЛ_СУЩ root grm="мн"])
            : $0.grm := agrc($1.grm, $2.grm);

[ЧИСЛ_СУЩ] -> ([SMALL-NUM grm="им"] | [SMALL-NUM grm="вн"] | [SMALL-DIG]) ([NOUN root grm="рд"] | [ПРИЛ_СУЩ root grm="рд"]);
   
%% == format_for_approx_noun_prep ==
%% нужно добавить согласование
[АППРОКС_ПГ] -> [NOUN root] [PREP_SIMPLE] ([ЧИСЛ_СУЩ] | [NUMCARD]);        

%% == format_for_number_adverb ==
[NUM_PR] -> [TOKEN filename="num_pr.dat"];
[НАР_ЧИСЛ_СУЩ1] -> [ЧИСЛ_СУЩ grm="рд"] | [NOUN grm="рд, мн"] | [ПРИЛ_СУЩ grm="рд, мн"] | [ЭЛЕКТ_ИГ grm="рд, мн"];
[НАР_ЧИСЛ_СУЩ] -> [NUM_PR root] [НАР_ЧИСЛ_СУЩ1 grm="рд"];

%% == format_for_similar_noun_groups ==
[ОДНОР_ИГ] -> ([NOUN] | [ПРИЛ_СУЩ] | [ГЕНИТ_ИГ] | [PRO]) ('и' | 'или') ([NOUN root] | [ПРИЛ_СУЩ root] | [ГЕНИТ_ИГ root] | [PRO root])
            : $0.grm := agrc($1.grm, $3.grm);
[ОДНОР_ИГ] -> [COORD-NP-COMMA] ('и' | 'или') ([NOUN root] | [ПРИЛ_СУЩ root] | [ГЕНИТ_ИГ root] | [PRO root])
            : $0.grm := agrc($1.grm, $3.grm);
[COORD-NP-COMMA] -> ([NOUN] | [ПРИЛ_СУЩ] | [ГЕНИТ_ИГ] | [PRO]) [COMMA] ([NOUN root] | [ПРИЛ_СУЩ root] | [ГЕНИТ_ИГ root] | [PRO root])
            : $0.grm := agrc($1.grm, $3.grm);
[COORD-NP-COMMA] -> [COORD-NP-COMMA] [COMMA] ([NOUN root] | [ПРИЛ_СУЩ root] | [ГЕНИТ_ИГ root] | [PRO root])
            : $0.grm := agrc($1.grm, $3.grm);
[ОДНОР_ИГ] -> [COORD-NP-COMMA];

%% == format_for_noun_adj_postposition ==
[ПРИЛ_ПОСТПОС1] -> [NOUN] | [ПРИЛ_СУЩ];
[ПРИЛ_ПОСТПОС2] -> [ADJ] | [МОДИФ_ПРИЛ] | [ОДНОР_ПРИЛ grm="П"] | [НАР_ПРИЛ];
[ПРИЛ_ПОСТПОС] -> [ПРИЛ_ПОСТПОС1 root] [ПРИЛ_ПОСТПОС2]
		    : $0.grm := agrcng($1.grm, $2.grm);

%% == format_for_noun_detached_adj_postposition ==

%% загадки , новый - это зачем?
%% еще нужен конец предложения
[СУЩ_ОБС_ПРИЛ1] -> [NOUN] | [PRO] | [ПРИЛ_СУЩ] | [ЧИСЛ_СУЩ];
[СУЩ_ОБС_ПРИЛ2] -> [ADJ] | [МОДИФ_ПРИЛ] | [ОДНОР_ПРИЛ grm="П"] | [НАР_ПРИЛ];

[СУЩ_ОБС_ПРИЛ] -> [СУЩ_ОБС_ПРИЛ1 root] [COMMA] [СУЩ_ОБС_ПРИЛ2] [COMMA]		    
			   : $0.grm := agrcng($1.grm, $3.grm);
			   
[СУЩ_ОБС_ПРИЛ] -> [ОДНОР_ИГ root grm="ед"] [COMMA] [СУЩ_ОБС_ПРИЛ2 grm="мн"] [COMMA]	    
			   : $0.grm := agrc($1.grm, $3.grm);

[СУЩ_ОБС_ПРИЛ] -> [СУЩ_ОБС_ПРИЛ1 root grm="мн"] [COMMA] [СУЩ_ОБС_ПРИЛ2 grm="ед"] [COMMA]	    
			   : $0.grm := agrc($1.grm, $3.grm);

%% == format_for_noun_adjunct_group ==
[ПРИЛОЖЕНИЕ] -> ([NOUN root grm="ед"] | [ПРИЛ_СУЩ root grm="ед"]) [COMMA] ([NOUN grm="ед"] | [ПРИЛ_СУЩ grm="ед"]) [COMMA]
		    : $0.grm := agrcn($1.grm, $3.grm);

[ПРИЛОЖЕНИЕ] -> ([NOUN root grm="мн"] | [ПРИЛ_СУЩ root grm="мн"]) [COMMA] ([NOUN grm="мн"] | [ПРИЛ_СУЩ grm="мн"]) [COMMA]
		    : $0.grm := agrcn($1.grm, $3.grm);

%% == format_for_partic_clause ==
[ПРИЧ_СУЩ1] -> [NOUN] | [PRO] | [ПРИЛ_СУЩ] | [ЧИСЛ_СУЩ] | [ГЕНИТ_ИГ]; 
[ПРИЧ_СУЩ2] -> [PART clause] | [DEEPR clause];
[ПРИЧ_СУЩ] -> [ПРИЧ_СУЩ1 root] [COMMA] [ПРИЧ_СУЩ2] ;
[ПРИЧ_СУЩ] -> [ПРИЧ_СУЩ1 root] [ПРИЧ_СУЩ2];

%% == format_for_whose_clause ==
[ПРИДАТ_ОПР1] -> [NOUN] | [PRO] | [ПРИЛ_СУЩ]  | [ЧИСЛ_СУЩ] | [ГЕНИТ_ИГ];
[ПРИДАТ_ОПР2] -> [V] | [SH-PART] | [НАРЕЧ_ГЛАГОЛ] | [ПЕР_ГЛАГ_ИНФ] | [ИНСТР_ДОП] | [ОТР_ФОРМА] | [ПРЯМ_ДОП] | [ПЕР_ГЛАГ_ИНФ];
[ПРИДАТ_ОПР] -> [ПРИДАТ_ОПР1 root] [COMMA] [ПРИДАТ_ОПР2 relative];
[ПРИДАТ_ОПР] -> [ПРИДАТ_ОПР1 root] [ПРИДАТ_ОПР2 relative];

%% == format_for_from_compar ==
[ОТСРАВН] -> [ADJ root grm="сравн"] ([NOUN grm="рд"] | [PRO grm="рд"] | [ПРИЛ_СУЩ grm="рд"] | [СУЩ_ЧИСЛ grm="рд"] | [ЧИСЛ_СУЩ grm="рд"] | [ГЕНИТ_ИГ grm="рд"]);

%% == format_for_FAM1_FAM2 ==

%% ЛАЗАРЕВ В.П. Г.САМАРА // ФИО не должны пересекаться

[ФИО] -> [TOKEN graf="FAM1"] [TOKEN graf="FAM2" root];
[ФИО] -> [TOKEN graf="FAM1"] [TOKEN atomic] [TOKEN graf="FAM2" root];
[ФИО] -> [TOKEN graf="FAM1"] [TOKEN atomic] [TOKEN atomic] [TOKEN graf="FAM2" root];
[ФИО] -> [TOKEN graf="FAM1"] [TOKEN atomic] [TOKEN atomic] [TOKEN atomic] [TOKEN graf="FAM2" root];

%% == format_for_web_addr,"ЭЛ_АДРЕС"  ==
[ЭЛ_АДРЕС] -> [TOKEN graf="EA"];

%% == format_for_rank_surname,"ДОЛЖ_ФИО"  ==
[ДОЛЖ_ФИО] -> [TOKEN root filename="profes.txt"] ([ФИО]|[TOKEN graf="NAM?"]);

%% == format_for_keyb,"КЛВ"  ==
[КЛВ] -> [TOKEN graf="KEY1"] [TOKEN atomic] [TOKEN graf="KEY2" root];


%% == format_for_oborots,"ОБОРОТ"  ==
%% [ОБОРОТ] -> [TOKEN graf="EXPR1"] [TOKEN graf="EXPR2" root];
%% [ОБОРОТ] -> [TOKEN graf="EXPR1"] [TOKEN atomic] [TOKEN graf="EXPR2" root];
%% [ОБОРОТ] -> [TOKEN graf="EXPR1"] [TOKEN atomic] [TOKEN atomic] [TOKEN graf="EXPR2" root];
%% [ОБОРОТ] -> [TOKEN graf="EXPR1"] [TOKEN atomic] [TOKEN atomic] [TOKEN atomic] [TOKEN graf="EXPR2" root];

%% == format_for_foreign_term,"ИНОСТР_ЛЕКС"  ==
[ИНОСТР_ЛЕКС] -> [TOKEN type="LLE"];

			   			   
[ROOT] -> [ЭЛЕКТ_ИГ] | [СУЩ_ЧИСЛ] | [ПРИЛ_СУЩ] | [ГЕНИТ_ИГ] | [ЧИСЛ_СУЩ] | 
          [АППРОКС_ПГ] | [НАР_ЧИСЛ_СУЩ] | [ОДНОР_ИГ] | [НАР_ЧИСЛ_СУЩ] | 
          [ПРИЛ_ПОСТПОС] | [СУЩ_ОБС_ПРИЛ] | [ПРИЧ_СУЩ] | [ПРИЛОЖЕНИЕ] | [ПРИДАТ_ОПР] | [ОТСРАВН] |
          [ФИО] | [ДОЛЖ_ФИО] | [ЭЛ_АДРЕС] | [КЛВ] | [ИНОСТР_ЛЕКС];
